package com.comprainsumos.MPersistencia;

import com.comprainsumos.modelo.Cotizacion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.List;

public class MPCotizacion {

    public static ManejadorBaseDatos mbd = ManejadorBaseDatos.getInstancia();
    public static Connection con;

    public static Cotizacion getCotizacion(int codigo) throws SQLException, Exception {
        mbd.conectar();
        con = mbd.getConexion();

        if (codigo == 0) {
            throw new SQLException("No hay elemento clave de la clase insumos");
        }
        ResultSet rs = null;
        PreparedStatement pst = null;
        Cotizacion cotizacion = null;
        try {
            pst = con.prepareStatement("select * from cotizacion where codigo = ?");
            pst.setInt(1, codigo);
            rs = pst.executeQuery();
            while (rs.next()) {
                cotizacion = cotizacion.load(rs);
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
            return cotizacion;
        }
    }
     public static int ultimo() throws SQLException, Exception {
        mbd.conectar();
        con = mbd.getConexion();
        ResultSet rs = null;
        PreparedStatement pst = null;
        int ultima = 0;
        try {
            pst = con.prepareStatement("select count(codigo)+1 AS ultimo from cotizacion");
            rs = pst.executeQuery();
            while (rs.next()) {
                ultima = rs.getInt("ultimo");
            }
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pst != null) {
                pst.close();
            }
        }
        return ultima;
    }

    public static void crearCotizacion(Cotizacion cotizacion) throws SQLException, Exception {
        mbd.conectar();
        con = mbd.getConexion();
        if (con == null) {
            throw new SQLException(" no hay conexion ");
        }
        PreparedStatement pst = null;
        try {
            pst = con.prepareStatement("INSERT INTO cotizacion VALUES(?,?,?)");
            pst.setInt(1, cotizacion.getCodigo());
            pst.setString(2, cotizacion.getFecha());
            pst.setString(3, cotizacion.getFechaLimite());
            pst.executeUpdate();
        } finally {
            if (pst != null) {
                pst.close();
            }
        }
    }

    public static void delCotizacion(int codigo) throws SQLException, Exception {
        mbd.conectar();
        con = mbd.getConexion();

        if (codigo == 0) {
            throw new SQLException("No hay elemento clave de la clase insumos");
        }
        PreparedStatement pst = null;

        try {
            pst = con.prepareStatement("delete from insumos where codigo = ?");
            pst.setInt(1, codigo);
            pst.executeUpdate();

        } finally {
        }

    }
}
